<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	</body>
	<script>
		/* Array.isArray()
		Array.isArray方法用来判断一个值是否为数组。它可以弥补typeof运算符的不足。
		
		var a = [1, 2, 3];
		
		typeof a // "object"
		Array.isArray(a) // true */
		
		/* 
		改变元素组           --------------------数组末尾加元素-------------
		var arr=['张飞','关羽','黄忠','马超','刘备']
		
		var arr1 =arr.push('赵云')
		console.log(arr);
		console.log(arr1); */
		/* 
		 Array实例的方法
		 valueOf()，toString()
		 valueOf方法返回数组本身。
		 
		 var a = [1, 2, 3];
		 a.valueOf() // [1, 2, 3]
		 toString方法返回数组的字符串形式   ---------数组转换成字符串--------------。
		 
		 var a = [1, 2, 3];
		 a.toString() // "1,2,3"
		 
		 var a = [1, 2, 3, [4, 5, 6]];
		 a.toString() // "1,2,3,4,5,6"*/
		 /* 
		 --------------------------------------删除末尾 pop()----------------
		 pop方法用于删除数组的最后一个元素，并返回该元素。注意，该方法会改变原数组。
		 push和pop结合使用，就构成了“后进先出”的栈结构（stack）。
		 var a = [1, 2, 3];
		 a.pop()
		 console.log(a);
		 */
		/* 
		 join方法以参数作为分隔符，将所有数组成员组成一个字符串返回。如果不提供参数，默认用逗号分隔。
		 
		 var a = [1, 2, 3, 4];
		 
		 a.join(' ') // '1 2 3 4'
		 a.join(' | ') // "1 | 2 | 3 | 4"
		 a.join() // "1,2,3,4"*/
	
		/*用call方法
		 var result=Array.prototype.join.call('hello','-');
		console.log(result);
		 */
		/* 
		 ----------------------------concat方法用于多个数组的合并。它将新数组的成员属于浅拷贝，------------------------
		 添加到原数组的尾部，然后返回一个新数组，原数组不变。
		 var a=[1,2,3,4]
		 var b=['老虎','猎豹']
		 var result=a.concat(b)
		 console.log(result);*/
		 
		 // var a=[1,2,3,[6,7,8]]
		 // var result=a.toString()
		 // console.log(a);
		 // console.log(result);
		 // console.log( typeof result);
		 /* 
		                      ------------shift  unshift 在头部删除 和添加 会改变数组---------
		 var b=['老虎','猎豹']
		 var result=b.unshift('大象')
		 console.log(result)
		 console.log(b);*/
		 /* 
		 slice()
		 slice方法用于提取原数组的一部分，返回一个新数组，原数组不变。
		 
		 它的第一个参数为起始位置（从0开始），第二个参数为终止位置（但该位置的元素本身不包括在内）。如果省略第二个参数，则一直返回到原数组的最后一个成员。
		 
		 // 格式       ---------------------------截取数组arr.slice浅拷贝---------
		 arr.slice(start_index, upto_index);
		 var a = ['a', 'b', 'c'];	 
		 a.slice(0) // ["a", "b", "c"]
		 a.slice(1) // ["b", "c"]
		 a.slice(2, 6) // ["c"]
		 a.slice() // ["a", "b", "c"]
		 上面代码中，最后一个例子slice没有参数，实际上等于返回一个原数组的拷贝。 
		 如果slice方法的参数是负数，则表示倒数计算的位置。*/
		 
		//-------------- arr.splice(index, count_to_remove, addElement1, addElement2, ...);---------------
		//返回值为删除的数据 增加的和push一样 在后加 第一个值可以为负
		/* var a = ['a', 'b', 'c', 'd', 'e', 'f'];
		var result=a.splice(4, 2,'l','y') 
		 console.log(result)//ef
		 console.log(a);//abcdly */
		/* -----------------------------------sort排序-------------
		sort(function (a, b) {
		  return a - b;
		} */
		/* 
		            map()
		 map方法对数组的所有成员依次调用一个函数，根据函数结果返回一个新数组。
		 var numbers = [1, 2, 3];
		 
		 numbers.map(function (n) {
		   return n + 1;
		 });
		 // [2, 3, 4]
		 [1, 2, 3].map(function(elem, index, arr) {
		   return elem * index;
		 });
		 // [0, 2, 6]*/
		 /* 
		 reverse()
		 reverse方法用于颠倒数组中元素的顺序，返回改变后的数组。注意，该方法将改变原数组。
		 
		 var a = ['a', 'b', 'c'];
		 
		 a.reverse() // ["c", "b", "a"]
		 a // ["c", "b", "a"]*/
		  var a = ['a', 'b', 'c'];
		  

	</script>
</html>
